package CapaDatos.listas;

import CapaDatos.Cliente;
import java.util.TreeSet;
import java.util.Comparator;
import java.util.Iterator;

public class ListaClientes
{
    private TreeSet <Cliente> clientes;
    private Comparator comparator;

    public ListaClientes()
    {
        comparator = new CompararPersonas();
        clientes = new TreeSet(comparator);
    }

    public boolean agregar (Cliente objeto) {
        return clientes.add(objeto);
    }

    public boolean actualizar (Cliente cliente) {
        if (!eliminar (cliente.getCedula()))
            return false;

        return agregar(cliente);
    }

    public Cliente buscarCedula(String cedula) {
        Cliente auxiliar = null;
        Iterator iterator = clientes.iterator();

        while (iterator.hasNext())
        {
            auxiliar = (Cliente) iterator.next();

            if (auxiliar.getCedula().equals(cedula))
                return auxiliar;
        }

        return null;
    }

    public boolean eliminar (String cedula) {
        Cliente auxiliar = buscarCedula (cedula);

        if (auxiliar == null)
            return false;

        return clientes.remove(auxiliar);
    }

    public Cliente buscarLogin(String usuario) {
        Object[] arregloClientes = this.array();
        Cliente cliente;
        int i, l = arregloClientes.length;

        for (i = 0; i < l; i++)
        {
            cliente = (Cliente) arregloClientes[i];
            if (cliente.getUsuario().equals(usuario))
                return cliente;
        }

        return null;
    }

    public Cliente[] array() {
        return clientes.toArray(new Cliente[0]);
    }
}
